#include <bits/stdc++.h>
using namespace std;

void sovle() {

  int n, k, x;
  cin >> n >> k >> x;
  priority_queue<double> q;//大根堆
  for (int i = 1; i <= n; i++) {
    double stick;
    cin >> stick;
    q.push(stick);
  }

  for (int i = 1; i <= k; i++) {
    double stick = q.top();
    q.pop();
    q.push(stick / 2);
    q.push(stick / 2);
  }
  int ci = 0;
  while (!q.empty()) {
    double stick = q.top();
    q.pop();
    ci++;
    if (ci == x) {
      cout << fixed << setprecision(18) << stick << endl;
      break;
    }
  }
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    sovle();
  }
  return 0;
}
